package cn.cvs.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 通过单例模式读取配置文件
 */

/**
 * 饿汉模式
 * 读取配置文件
 */
public class ConfigManager {
    //示例2
    //示例6 在类加载时即创建ConfigManager实例
    private static ConfigManager configManager = new ConfigManager();

    private static Properties properties;

    /**
     * 杜绝外界创建该类对象，私有构造方法
     */

    /**
     *私有构造方法
     * 在构造方法中读取数据库配置文件中
     */
    private ConfigManager(){
        String configFile = "database.properties";
        properties = new Properties();
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            properties.load(is);
            is.close();
        }catch (IOException e){
            e.printStackTrace();
        }
    }
    //示例3
    /**
     * 对外提取的获取ConfigManager实例方法
     */

    //示例6
    /**
     * 对外提供的获取ConfigManager实例的方法
     * @return
     */
    public static /*synchronized**/ ConfigManager getInstance(){
        //如果configManager不存在就创建一个，存在则直接返回
//        if (configManager == null){
//            configManager = new ConfigManager();
//        }
        return configManager;
    }

    //示例4
    /**
     * 读取配置文件信息
     */
    public String getValue(String key){
        return properties.getProperty(key);
    }
}
